module.exports = {
    
    /**
     * @api {model} backend_operation_units backend_operation_units
     * @apiDescription 组织单元，常用于区分不同公司
     * @apiGroup database
     * @apiParam {String} id 主键
     * @apiParam {String} name 组织名称
     * @apiParam {String} type 组织类型
     * @apiParam {String} suffix 在系统中的标识后缀，用于自动生成邮箱或配置
     * @apiParam {Boolean} is_removed 删除标志
     */
    "backend_operation_units" : {

        "id"           : @lab.types.id(),
        "name"         : @lab.types.string(),
        "type"         : @lab.types.string(),
        "suffix"       : @lab.types.string(),
        "is_removed"   : @lab.types.bool(),

    },

    /**
     * @api {model} backend_service_settings backend_service_settings
     * @apiDescription 组织授权第三方服务
     * @apiGroup database
     * @apiParam {String} id 主键
     * @apiParam {String} ouid 所属组织单元ID
     * @apiParam {String} name 服务名称
     * @apiParam {String} value 服务相关授权
     * @apiParam {Number} status 服务状态
     */
    "backend_service_settings" : {

        "id"                   : @lab.types.id(),
        "ouid"                 : @lab.types.string(),
        "name"                 : @lab.types.string(),
        "value"                : @lab.types.object(),
        "status"               : @lab.types.number(),

    },

    /**
     * @api {model} backend_service_keyrings backend_service_keyrings
     * @apiDescription 授权第三方服务密钥链
     * @apiGroup database
     * @apiParam {String} id 主键
     * @apiParam {String} ouid 所属组织单元ID
     * @apiParam {String} uid 相关用户ID
     * @apiParam {String} service_id 服务ID
     * @apiParam {String} local_key 本地的密钥
     * @apiParam {String} remote_id 远端服务ID
     * @apiParam {String} remote_key 远端公钥
     * @apiParam {String} credential 本地身份信息
     * Param {Timestamp} create_date 创建时间
     * @apiParam {Timestamp} expire_date 过期时间
     */
    "backend_service_keyrings" : {
        
        "id"           : @lab.types.id(),
        "ouid"         : @lab.types.string(),
        "uid"          : @lab.types.string(),
        
        "service_id"   : @lab.types.string(),
        
        "local_key"    : @lab.types.string("",2048),
        "remote_id"    : @lab.types.string(),

        "remote_key"   : @lab.types.string("",2048),
        "credential"   : @lab.types.object(),

        "create_date"  : @lab.types.date(),
        "expire_date"  : @lab.types.date()
    }
}